package com.xbongbong.sso.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseDTO;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.sso.pojo.dto.OauthConnectorAddDTO;
import com.xbongbong.sso.pojo.dto.OauthConnectorDeleteDTO;
import com.xbongbong.sso.pojo.dto.OauthConnectorDetailDTO;
import com.xbongbong.sso.pojo.dto.OauthConnectorEnableDTO;
import com.xbongbong.sso.pojo.dto.OauthConnectorListDTO;
import com.xbongbong.sso.pojo.dto.OauthConnectorUpdateDTO;
import com.xbongbong.sso.pojo.vo.OauthConnectorAddVO;
import com.xbongbong.sso.pojo.vo.OauthConnectorDetailVO;
import com.xbongbong.sso.pojo.vo.OauthConnectorEnableVO;
import com.xbongbong.sso.pojo.vo.OauthConnectorExistVO;
import com.xbongbong.sso.pojo.vo.OauthConnectorListVO;
import com.xbongbong.sso.pojo.vo.OauthConnectorUpdateVO;

/**
 * 授权连接器
 * 创建时间 2020/12/15 10:48 AM
 * 修改时间 2020/12/15 10:48 AM
 * @author chy
 */
public interface OauthConnectorService {

    /**
     * 授权连接器添加
     * @param oauthConnectorAddDTO
     * @throws XbbException
     */
    OauthConnectorAddVO add(OauthConnectorAddDTO oauthConnectorAddDTO) throws XbbException;

    /**
     * 授权连接器编辑
     * @param oauthConnectorUpdateDTO
     * @throws XbbException
     */
    OauthConnectorUpdateVO update(OauthConnectorUpdateDTO oauthConnectorUpdateDTO) throws XbbException;

    /**
     * 授权连接器列表
     * @param oauthConnectorListDTO
     * @throws XbbException
     */
    OauthConnectorListVO list(OauthConnectorListDTO oauthConnectorListDTO) throws XbbException;

    /**
     * 授权连接器详情
     * @param oauthConnectorDetailDTO
     * @throws XbbException
     */
    OauthConnectorDetailVO detail(OauthConnectorDetailDTO oauthConnectorDetailDTO) throws XbbException;

    /**
     * 授权连接器开启/关闭操作
     * @param oauthConnectorEnableDTO
     * @throws XbbException
     */
    OauthConnectorEnableVO enable(OauthConnectorEnableDTO oauthConnectorEnableDTO) throws XbbException;

    BaseVO delete(OauthConnectorDeleteDTO oauthConnectorDeleteDTO) throws XbbException;

    OauthConnectorExistVO exist(BaseDTO baseDTO) throws XbbException;
}
